home *** CD-ROM | disk | FTP | other *** search
/ Scene Storm / Scene Storm - Volume 1.iso / coding / asm / demos / bob_gravityballs / damage.s < prev    next >
Text File  |  1980-01-06  |  26KB  |  709 lines

  1. ;==========================================================================
  2. ; Program Name    : Bouncy Bob Balls    { Optimized }
  3. ; Coded by    : Ian Quigley         (aka : Damage)
  4. ; Date        : 19 July '93
  5. ; Licence    : Freeware
  6. ;
  7. ; AGA Fixed     : By Digital Candy, 1996
  8. ;==========================================================================
  9.  
  10.         incdir    include:
  11.         include    hardware/custom.i   ;This sets things like DMACONR equ $02
  12.  
  13. ; Boundaries.
  14. Lowest_Floor    equ    200    
  15. Right_Side    equ    287    
  16.  
  17. Start    ;---> Initialise System <--------------------------------------------
  18.  
  19.         lea    gfxname,a1
  20.         move.l    4.w,a6
  21.         jsr    -$0228(a6)    ; Exec.lib > Open 'Graphics' Library
  22.         move.l    d0,_GfxBase
  23.         move.l    d0,a0        ; Fiddel with Copper list offsets
  24.         move.l    38(a0),a0
  25.         move.l    a0,Copper_1
  26.  
  27.         move.l    #Copper,$dff080
  28.  
  29.         lea    Planes,a0
  30.         move.l    #Damage_Bin,d0
  31.         move.w    d0,30(a0)    ; Bitplane 4 low
  32.         swap    d0    
  33.         move.w    d0,26(a0)    ; Bitplane 4 high
  34.  
  35.         move.l    4.w,a6
  36.         jsr    -$0084(a6)    ; Exec.lib > Forbid O/S
  37.  
  38.         move.l    #(8*40*256),d0    ; 8 Planes size = 40*256 (320*256)
  39.         move.l    #2,d1        ; Chip Mem Please
  40.         move.l    4.w,a6
  41.         jsr    -$00C6(a6)    ; Exec>lib > AllocMem
  42.         move.l    d0,Mem_Space
  43.         beq    Exit_13        ; No Memory ! Bollocks !
  44.  
  45.         lea    OldPlanes,a0
  46.         move.l    d0,(a0)+    ; ie 60000
  47.         add.l    #(40*256),d0
  48.         move.l    d0,(a0)+    ; ie 62800
  49.         add.l    #(40*256),d0
  50.         move.l    d0,(a0)+    ; ie 65000
  51.         add.l    #(40*256),d0
  52.     
  53.         lea    NewPlanes,a0
  54.         move.l    d0,(a0)+    ; ie 67800
  55.         add.l    #(40*256),d0
  56.         move.l    d0,(a0)+    ; ie 6a000
  57.         add.l    #(40*256),d0
  58.         move.l    d0,(a0)+    ; ie 6c8000
  59.  
  60. ;----------} Main Code {-----------------------------------------------------
  61.  
  62.         jsr    Insert_NewPlanes
  63.  
  64.         lea    $dff000,a5
  65. Keepon        cmp.b    #255,6(a5)
  66.         bne.s    Keepon
  67.  
  68. ;        move.w    #$ff0,$dff180
  69.         lea    Object_1,a4
  70.         bsr    Update_Object        ; Write to New Planes
  71.         lea    Object_2,a4
  72.         bsr    Update_Object
  73.         lea    Object_3,a4
  74.         bsr    Update_Object
  75.         lea    Object_4,a4
  76.         bsr    Update_Object
  77.         lea    Object_5,a4
  78.         bsr    Update_Object
  79.         lea    Object_6,a4
  80.         bsr    Update_Object
  81.         lea    Object_7,a4
  82.         bsr    Update_Object
  83.         lea    Object_8,a4
  84.         bsr    Update_Object
  85.         lea    Object_9,a4
  86.         bsr    Update_Object
  87.         lea    Object_A,a4
  88.         bsr    Update_Object
  89.  
  90.         bsr    Insert_NewPlanes    ; Inserts to copper list
  91.  
  92.         bsr    Clear_Planes        ; Clears OldPlanes
  93.         bsr    Swap_Old_New_Planes    ; Swaps Old/New Planes
  94.  
  95. ;        move.w    #$00f,$dff180
  96.  
  97.         btst    #6,$bfe001
  98.         bne.w    Keepon            ; Right Mouse Button ??
  99.  
  100. ;----------) End Code (-----------------------------------------------------
  101.     
  102.         move.l    #(8*40*256),d0        ; Our 8 planes
  103.         move.l    Mem_Space,a1        ; Where they live
  104.         move.l    4.w,a6
  105.         jsr    -$00D2(a6)        ; Exec.lib > FreeMem
  106.  
  107. Exit_13        move.l    4.w,a6
  108.         jsr    -$008A(a6)        ; Exec.Lib > Permit
  109.         move.l    Copper_1,$dff080
  110.         move.l    _GfxBase,a1
  111.         move.l    4.w,a6
  112.         jmp    -$019e(a6)    ; Exec.Lib > Close 'Graphics' Lib.
  113.  
  114. ;----------> End of program <------------------------------------------------
  115.  
  116. ; Subroutines ...
  117.  
  118.  
  119. Counter        dc.l    0
  120. Mem_Space    dc.l    0
  121.  
  122. Insert_NewPlanes
  123.         ;-----------------------------------------------
  124.         ; Inserts NewPlane addresses into Copper List.
  125.         ;
  126.         ; a0,a1,d0 <= Trash.
  127.  
  128.         lea    Planes,a0
  129.         lea    NewPlanes,a1
  130.         
  131.         move.l    (a1)+,d0
  132.         move.w    d0,6(a0)    ; Plane 0 low
  133.         swap    d0
  134.         move.w    d0,2(a0)    ; Plane 0 high
  135.             
  136.         move.l    (a1)+,d0
  137.         move.w    d0,14(a0)    ; Plane 1 low
  138.         swap    d0
  139.         move.w    d0,10(a0)    ; Plane 1 high
  140.  
  141.         move.l    (a1)+,d0
  142.         move.w    d0,22(a0)    ; Plane 2 low
  143.         swap    d0
  144.         move.w    d0,18(a0)    ; Plane 2 high
  145.         rts
  146.  
  147.  
  148. Swap_Old_New_Planes    
  149.         ;-----------------------------------------------
  150.         ; Swaps 3 long word from OldPlanes/NewPlanes
  151.         ;
  152.         ; a0,a1,d7 <= Trash
  153.  
  154.         move.l    #(3)-1,d7    
  155.         lea    OldPlanes,a0
  156.         lea    TmpPlanes,a1
  157. Swap_Old_Temp
  158.         move.l    (a0)+,(a1)+
  159.         dbra    d7,Swap_Old_Temp
  160.  
  161.         move.l    #(3)-1,d7
  162.         lea    NewPlanes,a0
  163.         lea    OldPlanes,a1
  164. Swap_Old_New
  165.         move.l    (a0)+,(a1)+
  166.         dbra    d7,Swap_Old_New
  167.  
  168.         move.l    #(3)-1,d7
  169.         lea    TmpPlanes,a0
  170.         lea    NewPlanes,a1
  171. Swap_Tmp_New
  172.         move.l    (a0)+,(a1)+    
  173.         dbra    d7,Swap_Tmp_New
  174.         rts
  175.  
  176. ;============>> Blitter Image Code <<======================================
  177.  
  178. Update_Object    ;--------------------------------------------
  179.         ; a4  => Object Structure to update
  180.         ; a5  == Hardware Registers ($dff000)
  181.         ;
  182.         ; d0-d7/a0-a3  <= Invalid.
  183.         ;
  184.         ; This routine will re-plot an object, and reset it's
  185.         ; x/y co-ords.
  186.  
  187.         move.w    Obj_xpos(a4),d0
  188.         move.w    Obj_ypos(a4),d1
  189.         move.w    Obj_dx(a4),d2
  190.         move.w    Obj_dy(a4),d3
  191.         add.w    d2,d0            ; x = x + dx
  192.         add.w    d3,d1            ; y = y + dy
  193.         add.w    #1,d3            ; Add gravity to dy
  194.         cmp.w    #Lowest_Floor,d1
  195.         blt    UO_NoBounce1
  196.  
  197.         sub.w    #1,d3
  198.         bcc    UO_NoSmallBounce
  199.         move.w    #1,d3
  200. UO_NoSmallBounce
  201.         neg.w    d3            ; reverse direction dy
  202.         move.w    #Lowest_Floor,d1
  203. UO_NoBounce1
  204.         cmp.w    #Right_Side,d0        ; | ie     d0 > 0200
  205.         blt    UO_NoBounce2        ; | ie  d0 = 0203
  206.         sub.w    #Right_Side,d0        ; | ie    d0 = 0003
  207.         neg.w    d0            ; | ie    d0 = FFFD
  208.         add.w    #Right_Side,d0        ; | ie    d0 = 0197 
  209.         neg.w    d2    ;Reverser dirct.  \  and looks like a bounce
  210. UO_NoBounce2
  211.         btst    #15,d0            ; ie    d0 < 0
  212.         beq    UO_NoBounce3        ; ie    d0 = FFFD
  213.         neg.w    d0            ; ie    d0 = 0003
  214.         neg.w    d2    ; Reverse Direction
  215. UO_NoBounce3
  216.         move.w    d0,Obj_xpos(a4)
  217.         move.w    d1,Obj_ypos(a4)        
  218.         move.w    d2,Obj_dx(a4)
  219.         move.w    d3,Obj_dy(a4)
  220.  
  221.  
  222. UO_PlotObject    ;-----> Plot new object <---------------------------------
  223.         move.w    Obj_xpos(a4),d0
  224.         move.w    Obj_ypos(a4),d1
  225.         mulu    #320/8,d1
  226.         move.l    d1,UO_Addr_Offset    ; add on y*40
  227.         lsr.w    #4,d0
  228.         add.w    d0,d0
  229.         add.l    d0,UO_Addr_Offset    ; add on 2*int(x/16)
  230.  
  231.         lea    Ball_Bob,a1    ;pointer to bitplane data
  232.         move.l    #124,d6            ;size of 1 bitplane of image in BYTES!
  233.  
  234.         ;------------ Now do the funky stuff -------------------------
  235.         lea    Ball_Bob.MASK,a2
  236.         move.w    #3-1,d7            ; bitplane counter
  237.         lea    NewPlanes,a3
  238.  
  239. UO_PlaneNumb    
  240.         move.l    (a3)+,a0
  241.         add.l    UO_Addr_Offset,a0
  242.  
  243. UO_WaitBlitter2    btst    #6,DMACONR(a5)        ; blitter done?
  244.         bne.s    UO_WaitBlitter2        ; no, wait for it
  245.  
  246.         move.l    a0,BLTCPT(a5)        ; bgnd and destination
  247.         move.l    a0,BLTDPT(a5)        ; bitplane pointers
  248.         move.l    a1,BLTBPT(a5)        ; ptr to image data
  249.         move.l    a2,BLTAPT(a5)        ; ptr to mask data
  250.  
  251.         move.w    #-2,BLTAMOD(a5)        
  252.         move.w    #-2,BLTBMOD(a5)        
  253.  
  254.         move.w    #(320/8)-6,BLTCMOD(a5)    ; C, D moduli equals
  255.         move.w    #(320/8)-6,BLTDMOD(a5)    ; 40-(cols width in bytes)
  256.  
  257.         move.l    #$ffff0000,BLTAFWM(a5)    
  258.  
  259.         moveq    #0,d0
  260.         move.w    Obj_xpos(a4),d0
  261.         and.w    #%1111,d0        ; frac(x/16)
  262.  
  263.         rol.w    #4,d0
  264.         move.w    d0,d1
  265.         or.w    #%1111,d0        ; and in USEx bits!
  266.         rol.w    #8,d0            ; put in proper place
  267.         or.b    #$CA,d0            ; put in minterm bits
  268.  
  269.         move.w    d0,BLTCON0(a5)        ; save BLTCON0 control word
  270.         rol.w    #8,d1            ; proper place
  271.         move.w    d1,BLTCON1(a5)
  272.         move.w    #$07C3,BLTSIZE(a5)
  273.  
  274. UO_NextDest    
  275.  
  276.         add.l    d6,a1            ; next image bitplane
  277.         dbra    d7,UO_PlaneNumb
  278.  
  279.         rts
  280.  
  281. Clear_Planes
  282.         ;------------ Clear Old Area ------------------------------
  283.         ;
  284.         ; Clears Old Planes.
  285.         ;
  286.         ; a0-a4,d7 <= Trash
  287.  
  288. USED=$100
  289.  
  290.         moveq    #3-1,d7
  291.         lea    OldPlanes,a3
  292. UO_ClearArea
  293.         btst    #6,DMACONR(a5)        ; Is blitter ready ?
  294.         bne    UO_ClearArea        ; No. Wait for it...
  295.             
  296.         move.w    #0,BLTDMOD(a5)        ; Nor you.
  297.         move.l    (a3)+,a0
  298.         move.l    a0,BLTDPT(a5)        ; Tell it screen Addr.
  299.         move.w    #0,BLTDMOD(a5)        ; Don't skip bits
  300.         move.w    #USED,$40(a5)        ; Just output to D
  301.         move.w    #0,BLTCON1(a5)        ; and no wise moves.
  302.         move.w    #$4014,BLTSIZE(a5)    ; 256 * 40 (bytes) scrn
  303.         dbra    d7,UO_ClearArea
  304.  
  305.         rts
  306.  
  307. UO_Addr_Offset    dc.l    0        ; Address offset from x * y
  308.  
  309. ;==========>> Data Area <<==================================================
  310.  
  311. Object_1    ;=============================================================
  312.         dc.w    32,53        ;  x / y   - position NOW
  313.         dc.w    -3,1        ; dx / dy  - velocity
  314.  
  315. Object_2    ;=============================================================
  316.         dc.w    132,62        ;  x / y   - position NOW
  317.         dc.w    2,-1        ; dx / dy  - velocity
  318.  
  319. Object_3    ;=============================================================
  320.         dc.w    232,42        ;  x / y   - position NOW
  321.         dc.w    3,1        ; dx / dy  - velocity
  322.  
  323. Object_4    ;=============================================================
  324.         dc.w    2,20        ;  x / y   - position NOW
  325.         dc.w    -5,1        ; dx / dy  - velocity
  326.  
  327. Object_5    ;=============================================================
  328.         dc.w    60,80        ;  x / y   - position NOW
  329.         dc.w    1,-1        ; dx / dy  - velocity
  330.  
  331. Object_6    ;=============================================================
  332.         dc.w    50,75        ;  x / y   - position NOW
  333.         dc.w    6,1        ; dx / dy  - velocity
  334.  
  335. Object_7    ;=============================================================
  336.         dc.w    90,24        ;  x / y   - position NOW
  337.         dc.w    3,-1        ; dx / dy  - velocity
  338.  
  339. Object_8    ;=============================================================
  340.         dc.w    20,93        ;  x / y   - position NOW
  341.         dc.w    -3,1        ; dx / dy  - velocity
  342.  
  343. Object_9    ;=============================================================
  344.         dc.w    100,10        ;  x / y   - position NOW
  345.         dc.w    -8,1        ; dx / dy  - velocity
  346.  
  347. Object_A    ;=============================================================
  348.         dc.w    60,130        ;  x / y   - position NOW
  349.         dc.w    3,-2        ; dx / dy  - velocity
  350.  
  351. _GfxBase    dc.l    0
  352. gfxname        dc.b    'graphics.library',0
  353.         even
  354.  
  355. Copper_1    dc.l    0
  356.  
  357. OldPlanes    dc.l    0,0,0,0
  358. NewPlanes    dc.l    0,0,0,0
  359. TmpPlanes    dc.l    0,0,0,0
  360.  
  361.         SECTION    MY_COPPER,CODE_C
  362.  
  363. Copper        dc.l    $01fc0000,$01060000
  364.         dc.l    $01200000,$01220478
  365.         dc.l    $01240000,$01260478,$01280000,$012A0478
  366.         dc.l    $012C0000,$012E0478,$01300000,$01320478
  367.         dc.l    $01340000,$01360478,$01380000,$013A0478
  368.         dc.l    $013C0000,$013E0478
  369. Cop_Colors    dc.l    $01820A00,$01840500,$01860600        ; Colors   1,2,3
  370.          dc.l    $01880611,$018A0811,$018C0300,$018E0FC8    ; Colors 4,5,6,7
  371.          dc.l    $01900303,$01920a00,$01940500,$01960600    ; Colors 8,9,a,b
  372.         dc.l    $01980611,$019a0811,$019c0300,$019e0fc8    ; Colors c,d,e,f
  373.  
  374.  
  375. ;Bar one
  376.         dc.l $01800111,$2901fffe
  377.         dc.l $01800a0a,$2a01fffe
  378.         dc.l $0180011f,$2b01fffe,$01800000
  379.  
  380.         dc.l $008E057C,$01000200,$01040024
  381.         dc.l $009040BC,$00920030,$009400C8,$010200BB
  382.         dc.l $01080000,$010A0000
  383.  
  384. Planes        dc.l $00E00006,$00E20000
  385.         dc.l $00E40006,$00E62800
  386.         dc.l $00E80006,$00Ea5000
  387.         dc.l $00EC0000,$00EE0000
  388.  
  389.  
  390.         dc.l $2c01fffe,$01003200    ; 3 Bit Planes
  391.         dc.l $6001fffe,$01004200    ; 4 Bit Planes (Damage Piccy)
  392.         dc.l $c001fffe,$01003200    ; 3 Bit Planes
  393.  
  394.         dc.l $FFDFFFFE
  395. ;Bar Two
  396.         dc.l $01800000,$1401fffe
  397.         dc.l $0180011f,$1501fffe
  398.         dc.l $01800a0a,$1601fffe,$01800111
  399.  
  400.         dc.l $2B01FFFE,$01000200    ; No Bit Planes Thanx 
  401.         dc.l $FFFFFFFE            ; End Of CopperList.
  402.  
  403.  
  404.  
  405. Ball_Bob    ;=============================================================
  406.  DC.W $0000,$0000,$0000,$0000,$0000,$0000,$003F,$8000
  407.  DC.W $00C1,$E000,$017C,$E000,$02FE,$3000,$05FF,$5400
  408.  DC.W $07FF,$1800,$0BFE,$AC00,$03FF,$1A00,$0BFE,$AC00
  409.  DC.W $11FF,$1A00,$197D,$2C00,$0EAA,$1A00,$1454,$DC00
  410.  DC.W $0E81,$3800,$0154,$F400,$02EB,$F000,$015F,$D000
  411.  DC.W $00B5,$A000,$002A,$8000,$0000,$0000,$0000,$0000
  412.  DC.W $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  413.  DC.W $0000,$0000,$0000,$0000,$0000,$0000
  414.  
  415.  DC.W $000F,$E000,$007F,$FC00,$01FF,$FF00,$03FF,$FF80
  416.  DC.W $07C1,$FFC0,$0F00,$FFE0,$1E00,$3FF0,$3C40,$5FF8
  417.  DC.W $3CE0,$1FF8,$7840,$2FFC,$7800,$1FFC,$7800,$2FFC
  418.  DC.W $F800,$1FFE,$F800,$2FFE,$FE00,$1FFE,$FC00,$DFFE
  419.  DC.W $FE81,$3FFE,$FF54,$FFFE,$FFEB,$FFFE,$7FFF,$FFFC
  420.  DC.W $7FFF,$FFFC,$7FFF,$FFFC,$3FFF,$FFF8,$3FFF,$FFF8
  421.  DC.W $1FFF,$FFF0,$0FFF,$FFE0,$07FF,$FFC0,$03FF,$FF80
  422.  DC.W $01FF,$FF00,$007F,$FC00,$000F,$E000
  423.  
  424.  DC.W $000F,$E000,$007F,$FC00,$01E0,$7F00,$0380,$0F80
  425.  DC.W $073E,$0AC0,$0CFF,$0560,$198F,$C2F0,$3347,$A0B8
  426.  DC.W $32EB,$E158,$6647,$D0AC,$660B,$E05C,$4757,$D0AC
  427.  DC.W $C7AF,$E05E,$A7FF,$D02E,$C1FF,$E05E,$A3FF,$202E
  428.  DC.W $D17E,$C05E,$E0AB,$002E,$D014,$005E,$6800,$00AC
  429.  DC.W $7000,$02DC,$7400,$057C,$2800,$0AF8,$3680,$55F8
  430.  DC.W $1D54,$AAF0,$0EAB,$55E0,$0754,$ABC0,$03EB,$FF80
  431.  DC.W $01FE,$FF00,$007F,$FC00,$000F,$E000
  432.  
  433. Ball_Bob.MASK
  434.  DC.W $000F,$E000,$007F,$FC00,$01FF,$FF00,$03FF,$FF80
  435.  DC.W $07FF,$FFC0,$0FFF,$FFE0,$1FFF,$FFF0,$3FFF,$FFF8
  436.  DC.W $3FFF,$FFF8,$7FFF,$FFFC,$7FFF,$FFFC,$7FFF,$FFFC
  437.  DC.W $FFFF,$FFFE,$FFFF,$FFFE,$FFFF,$FFFE,$FFFF,$FFFE
  438.  DC.W $FFFF,$FFFE,$FFFF,$FFFE,$FFFF,$FFFE,$7FFF,$FFFC
  439.  DC.W $7FFF,$FFFC,$7FFF,$FFFC,$3FFF,$FFF8,$3FFF,$FFF8
  440.  DC.W $1FFF,$FFF0,$0FFF,$FFE0,$07FF,$FFC0,$03FF,$FF80
  441.  DC.W $01FF,$FF00,$007F,$FC00,$000F,$E000
  442.  
  443.  
  444.  
  445. Damage_Bin        ; 320 * 100 1 Bitplane
  446.  dc.b 0
  447.  DC.W $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  448.  DC.W $0000,$0000,$0001,$0000,$0000,$0000,$0000,$0000
  449.  DC.W $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  450.  DC.W $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  451.  DC.W $0000,$0000,$0000,$0400,$0000,$0000,$0000,$0000
  452.  DC.W $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  453.  DC.W $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0400
  454.  DC.W $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  455.  DC.W $0000,$0000,$0000,$0000,$0000,$0000,$3000,$0000
  456.  DC.W $0000,$0000,$0000,$0100,$0000,$0000,$0000,$0000
  457.  DC.W $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  458.  DC.W $2000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  459.  DC.W $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  460.  DC.W $0000,$0000,$0000,$0000,$0000,$4000,$0000,$0000
  461.  DC.W $0000,$0000,$0000,$0180,$0000,$0000,$0000,$0000
  462.  DC.W $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  463.  DC.W $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  464.  DC.W $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  465.  DC.W $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  466.  DC.W $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  467.  DC.W $0000,$0040,$0000,$0000,$0000,$0007,$0000,$0000
  468.  DC.W $0000,$0000,$0000,$0000,$0000,$4000,$0000,$0000
  469.  DC.W $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  470.  DC.W $0000,$0002,$0000,$0000,$0000,$0000,$0000,$0000
  471.  DC.W $0401,$6000,$0000,$0400,$0000,$0000,$0000,$0000
  472.  DC.W $0000,$0050,$0000,$0000,$0000,$0000,$2000,$0000
  473.  DC.W $4000,$0000,$0000,$0000,$080A,$3000,$1C00,$0C00
  474.  DC.W $0000,$0000,$0000,$0000,$0000,$0020,$0000,$0000
  475.  DC.W $0008,$0000,$6000,$0000,$2FEC,$0000,$0000,$0000
  476.  DC.W $181F,$DC00,$3E07,$FB40,$0000,$0000,$0000,$0000
  477.  DC.W $0000,$0020,$0000,$0000,$021C,$0001,$FC00,$0000
  478.  DC.W $8FFE,$0000,$F001,$8000,$101C,$FF00,$3FFF,$EEE0
  479.  DC.W $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  480.  DC.W $0438,$8003,$7EF0,$4000,$DFF7,$8001,$FC03,$0000
  481.  DC.W $003F,$FF88,$3FFF,$F8D6,$0000,$0000,$0000,$0000
  482.  DC.W $0000,$0000,$0600,$0000,$027D,$4001,$FFF8,$0000
  483.  DC.W $3FFB,$0011,$FF80,$0000,$007F,$FFC0,$DFFF,$EA5F
  484.  DC.W $C000,$0000,$0000,$0000,$0000,$0C00,$7600,$0000
  485.  DC.W $0019,$4000,$FEF8,$0000,$7FFF,$0001,$FFC0,$0000
  486.  DC.W $00FF,$FFC0,$5FFF,$FEFF,$B800,$0000,$0000,$0000
  487.  DC.W $0000,$1C0E,$3600,$0000,$0007,$8800,$FC7D,$0000
  488.  DC.W $7FEB,$0083,$FFC0,$0000,$40FF,$FFD0,$1FFF,$FFDF
  489.  DC.W $FC00,$0000,$0000,$0000,$0000,$1B4E,$7C00,$0000
  490.  DC.W $000F,$DC04,$7E7E,$0000,$FFF7,$0003,$FFC0,$0000
  491.  DC.W $08FE,$DFE0,$3FFF,$EC5F,$F800,$0000,$0000,$0000
  492.  DC.W $0000,$7346,$0800,$0000,$02BF,$FC00,$FFFE,$0001
  493.  DC.W $FFFF,$0007,$FFC0,$0000,$046F,$BFF8,$3FFF,$E9BF
  494.  DC.W $FC00,$0000,$0000,$0000,$0006,$B786,$0E00,$0000
  495.  DC.W $033F,$FC00,$FEE4,$0000,$7FFF,$0007,$FFE0,$0000
  496.  DC.W $1385,$BFF8,$3FFF,$F47F,$FE00,$0000,$0000,$0000
  497.  DC.W $0004,$6FD3,$1F80,$0000,$003F,$FC00,$FFFE,$1001
  498.  DC.W $7FFF,$0005,$FFE0,$0000,$0277,$FFF8,$3FFF,$F7FF
  499.  DC.W $FF00,$0000,$0000,$0000,$0007,$7FCB,$FFE0,$0000
  500.  DC.W $001E,$BE00,$FFFB,$8000,$5FFF,$800F,$FFE0,$0000
  501.  DC.W $047F,$FFFC,$3FFF,$EB7F,$FF00,$0000,$0000,$0000
  502.  DC.W $0003,$FFE1,$FFF0,$0008,$003F,$6E00,$FFFF,$8001
  503.  DC.W $4FFD,$001F,$FDF0,$0000,$086D,$FFFC,$3FFE,$1BFF
  504.  DC.W $FF00,$0000,$0000,$0000,$0003,$FBC8,$FFF8,$0004
  505.  DC.W $00FF,$FE00,$7FFF,$8000,$0FFE,$800F,$FB38,$0000
  506.  DC.W $0B4F,$FDBC,$3FFC,$3ABF,$FE00,$0000,$0000,$0000
  507.  DC.W $0003,$FDF1,$FFFC,$0000,$00FF,$FE00,$3FFF,$8001
  508.  DC.W $5DFF,$000F,$FDF0,$0000,$075F,$FBFC,$3FFC,$33FF
  509.  DC.W $F000,$0000,$0000,$0000,$0003,$F9F2,$FFFE,$0000
  510.  DC.W $00FF,$FE00,$7FFF,$8003,$CDDF,$001F,$FFA0,$0200
  511.  DC.W $07AF,$7BFC,$3FFC,$07E0,$0000,$0000,$0000,$0000
  512.  DC.W $0003,$F9E8,$7FFF,$0000,$01FF,$FE00,$FFFF,$C005
  513.  DC.W $D1FF,$001F,$FFE0,$1200,$0EAE,$7FFC,$3FFC,$0E20
  514.  DC.W $0200,$0000,$0000,$0000,$0003,$FBF1,$3FFF,$8000
  515.  DC.W $01FF,$FE00,$FFFF,$C001,$28D9,$401F,$EFF8,$5000
  516.  DC.W $0EEC,$FFFC,$3FFC,$1804,$0600,$0000,$0000,$0000
  517.  DC.W $0003,$FFF0,$1FFF,$C000,$01DF,$FF00,$FFFF,$C003
  518.  DC.W $A06F,$803F,$FBE8,$0400,$1B1F,$FFFC,$3FFC,$1012
  519.  DC.W $0000,$0000,$0000,$0000,$0003,$FFF0,$0FFF,$E000
  520.  DC.W $018F,$FF00,$FFFF,$E003,$F9FB,$803F,$FFE8,$0000
  521.  DC.W $0B7F,$7FFC,$3FF8,$0000,$0000,$0000,$0000,$0000
  522.  DC.W $0003,$FFC5,$0FFF,$C000,$05DF,$FF00,$BBFF,$E007
  523.  DC.W $FC87,$811F,$FE42,$0000,$9F47,$DFFC,$3FF0,$0020
  524.  DC.W $0000,$0000,$0000,$0000,$0003,$FFC0,$07FF,$E000
  525.  DC.W $07FF,$FF00,$FFFF,$E007,$FE80,$008D,$47A0,$0000
  526.  DC.W $7F49,$FFFC,$3FF0,$0000,$0000,$0000,$0000,$0000
  527.  DC.W $0003,$FFC0,$07FF,$E200,$0A7F,$FE02,$F7FF,$C007
  528.  DC.W $FF80,$811A,$658B,$4000,$3F00,$FFF8,$3FFA,$0000
  529.  DC.W $0000,$0000,$0000,$0000,$0003,$FFC0,$87FF,$E000
  530.  DC.W $031F,$FC80,$BFFF,$E007,$FFF0,$8065,$2F0B,$0000
  531.  DC.W $7FB7,$7FF8,$3FFE,$0000,$0000,$0000,$0000,$0000
  532.  DC.W $0003,$FFC0,$03FF,$F000,$0F3F,$FE04,$FFFF,$F80F
  533.  DC.W $FFF8,$8071,$BC75,$8000,$FBFF,$FFF0,$3FF8,$0000
  534.  DC.W $0000,$0000,$0000,$0000,$0003,$FFC0,$027F,$F000
  535.  DC.W $0B17,$FF02,$FFFF,$480F,$FFFB,$0054,$36F3,$8000
  536.  DC.W $FFF5,$E964,$77F8,$0000,$0000,$0000,$0000,$0000
  537.  DC.W $0003,$FFCC,$027F,$B000,$3ED1,$FFE0,$FFFA,$084F
  538.  DC.W $FFF8,$0003,$F9FF,$8000,$FF9A,$A182,$3FF8,$0000
  539.  DC.W $0010,$0000,$0000,$0000,$0003,$FFF4,$037D,$1800
  540.  DC.W $0BD2,$FF80,$FFFD,$CCAF,$FFFC,$0007,$FFFF,$8001
  541.  DC.W $FDF8,$1604,$3FB8,$4000,$0000,$0000,$0000,$0000
  542.  DC.W $0003,$FF07,$03FD,$B800,$3FD7,$7F80,$F7FF,$A51F
  543.  DC.W $FFFC,$000F,$FFFF,$8001,$FFF0,$E080,$3F98,$8400
  544.  DC.W $0000,$0000,$0000,$0000,$0003,$FFE7,$01DD,$F800
  545.  DC.W $7FB7,$FF80,$FFFF,$F10F,$FFFD,$000F,$FFFF,$8003
  546.  DC.W $FFF0,$1000,$3FFD,$8000,$0000,$0000,$0000,$0000
  547.  DC.W $0003,$FEE8,$01E7,$F800,$7FD0,$5F80,$F9FF,$443F
  548.  DC.W $FFFF,$000F,$FFFF,$8003,$FFE2,$9000,$7FFF,$4838
  549.  DC.W $0000,$0000,$0000,$0000,$0007,$FEF0,$01FF,$F800
  550.  DC.W $7FFD,$0FC0,$FFFF,$D86F,$FFFF,$200F,$FFDF,$C003
  551.  DC.W $FFE4,$0000,$7FFF,$7C2A,$0000,$0000,$0000,$0000
  552.  DC.W $0003,$FE5C,$01FF,$F800,$7FFE,$4FC0,$FFFF,$927F
  553.  DC.W $FFFF,$001F,$FDEF,$C007,$FFC8,$0007,$7FFF,$5008
  554.  DC.W $0000,$0000,$0000,$0000,$0001,$FFF2,$01FF,$F802
  555.  DC.W $7FEC,$47C0,$FFFD,$1727,$FFFF,$041F,$FDFF,$C007
  556.  DC.W $FFD8,$000F,$FFFF,$C40C,$0000,$0000,$0000,$0000
  557.  DC.W $0011,$FFD0,$01FF,$F830,$FFED,$83C0,$EFFD,$B77F
  558.  DC.W $FFFF,$021F,$FBFF,$C007,$FFC0,$000F,$6FFF,$77AA
  559.  DC.W $0000,$0000,$0000,$0000,$0003,$FFC0,$01FF,$F810
  560.  DC.W $7FED,$F950,$F7DF,$CE3F,$FFFF,$005F,$FA7F,$C02F
  561.  DC.W $FF90,$0017,$FDFF,$B7EB,$F000,$0000,$0000,$0000
  562.  DC.W $0003,$FFC0,$01FF,$F820,$BFF5,$F828,$FBDF,$CFFF
  563.  DC.W $FFFF,$004F,$FFFF,$C069,$FFD0,$0003,$1BFE,$FFFF
  564.  DC.W $F000,$0000,$0000,$0000,$0003,$FFA0,$01FF,$F808
  565.  DC.W $7FC7,$F990,$FFC3,$CFBF,$FFFF,$002F,$FEFF,$C00F
  566.  DC.W $FF4C,$2384,$7FFF,$3FFF,$F000,$0000,$0000,$0000
  567.  DC.W $0003,$FFA0,$01FF,$F803,$FFCF,$FE80,$FFE1,$477F
  568.  DC.W $FFFF,$0187,$FAFF,$E01F,$FF00,$07DE,$FFFF,$F7FF
  569.  DC.W $F000,$0000,$0000,$0000,$0003,$FEA0,$03FF,$F801
  570.  DC.W $FFC7,$FB00,$FF80,$C7FF,$DFFF,$0087,$FCFF,$E01D
  571.  DC.W $FF80,$1DDE,$7FFF,$DFFF,$F000,$0000,$0000,$0000
  572.  DC.W $0003,$FF40,$03FF,$F803,$FFD7,$FF00,$F701,$37FE
  573.  DC.W $FFFF,$8003,$FEFF,$E01B,$FD28,$D88F,$7FFF,$1FFF
  574.  DC.W $F000,$0000,$0000,$0000,$0003,$FFC0,$03FF,$F807
  575.  DC.W $FFBB,$FD00,$1F00,$B7FF,$5FFF,$9859,$F47F,$F01F
  576.  DC.W $FE00,$59D3,$7FF9,$3FFF,$E000,$0000,$0000,$0000
  577.  DC.W $0003,$FFC0,$03FF,$F802,$FF9F,$BF00,$3FE0,$3FFF
  578.  DC.W $EFFD,$085B,$F07F,$181F,$FC00,$0FFF,$7FF9,$2FFF
  579.  DC.W $0000,$0000,$0000,$0000,$0003,$FFC0,$07FF,$F003
  580.  DC.W $FF9B,$FF00,$FDF0,$1DFF,$EF7A,$1061,$F37F,$F01F
  581.  DC.W $FF0B,$BFDF,$77F8,$9F00,$0000,$0000,$0000,$0000
  582.  DC.W $0003,$FFC0,$07FB,$E407,$EF81,$FF00,$39C2,$0FFF
  583.  DC.W $CF7F,$403B,$E07F,$F83F,$FE67,$E3BF,$7FF9,$0000
  584.  DC.W $0000,$0000,$0000,$0000,$0003,$FFA0,$0FFF,$F007
  585.  DC.W $FF03,$F381,$4180,$6FFF,$CFFB,$0033,$FFFF,$F03F
  586.  DC.W $FFD7,$F3DF,$37F8,$0000,$0000,$0000,$0000,$0000
  587.  DC.W $0003,$FF70,$07F7,$F407,$DFFE,$FF80,$6990,$0FFF
  588.  DC.W $CFAE,$007D,$FFFF,$F03F,$FD4F,$FAFF,$07F8,$0000
  589.  DC.W $0000,$0000,$0000,$0000,$0003,$FFE0,$03FB,$2007
  590.  DC.W $CFF9,$FF81,$0AE0,$0FFF,$8FDD,$007F,$FFFF,$F03F
  591.  DC.W $FC9F,$A7DF,$1BF8,$0000,$0000,$0000,$0000,$0000
  592.  DC.W $0003,$FDC0,$05FB,$800F,$EFBF,$FF83,$8340,$3FFF
  593.  DC.W $8F89,$00F9,$7FFF,$F01F,$FC7F,$F3FE,$E7F8,$0000
  594.  DC.W $0000,$0000,$0000,$0000,$0003,$FF60,$09D7,$E00F
  595.  DC.W $FFFF,$FF81,$A060,$1FFF,$0FC7,$00F3,$70FF,$F11F
  596.  DC.W $FC03,$FBFF,$67F8,$0000,$0000,$0000,$0000,$0000
  597.  DC.W $0003,$FF18,$1DEF,$E00F,$FFFF,$FF81,$B840,$37FF
  598.  DC.W $0F43,$00FF,$7EFF,$F09F,$FC01,$F6FA,$4FF8,$0000
  599.  DC.W $0000,$0000,$0000,$0000,$0003,$FEC8,$0AFF,$E00F
  600.  DC.W $FFFB,$FF81,$D000,$0FFE,$0D11,$00EB,$7C7F,$FC4F
  601.  DC.W $FC04,$35FC,$27F8,$0000,$0000,$0000,$0000,$0000
  602.  DC.W $0006,$FF80,$13FF,$C01F,$FFF7,$FFC1,$F600,$19FA
  603.  DC.W $0EFD,$01FD,$FEFF,$FC3F,$FC80,$357E,$1BF8,$0000
  604.  DC.W $0000,$0000,$0000,$0000,$0008,$F040,$39FF,$801F
  605.  DC.W $FEFF,$FFC1,$F700,$46FC,$0405,$01FD,$F43F,$FC3F
  606.  DC.W $F000,$7CFC,$2FF8,$0000,$0000,$0000,$0000,$0000
  607.  DC.W $000F,$CBC0,$38FF,$0017,$FDE1,$FFC1,$FB80,$07D2
  608.  DC.W $1D3F,$01FF,$983F,$FC3F,$E000,$7EF8,$1FF8,$0000
  609.  DC.W $0000,$0000,$0000,$0000,$000D,$5040,$7E7F,$0403
  610.  DC.W $FC81,$FFC1,$FFC0,$0FFC,$041F,$05FF,$3C3F,$FC7F
  611.  DC.W $F000,$78F8,$3FF8,$2000,$0000,$0000,$0000,$0000
  612.  DC.W $0010,$1500,$79BE,$052F,$FDC1,$FFC1,$FFA0,$03F8
  613.  DC.W $083F,$07FC,$081F,$F83F,$F800,$FFD0,$3FFC,$2000
  614.  DC.W $0000,$0000,$0000,$0000,$0020,$0580,$FEFE,$012F
  615.  DC.W $F880,$FFC1,$FFE0,$03F0,$107F,$07FE,$201F,$F87F
  616.  DC.W $F800,$FED0,$3DFC,$4200,$0000,$0000,$0000,$0000
  617.  DC.W $0020,$1B80,$7CFC,$04AB,$F800,$FFC1,$FFE0,$0000
  618.  DC.W $24FF,$03FE,$801F,$FDEF,$F801,$FE40,$37FC,$8200
  619.  DC.W $0020,$0000,$0000,$0000,$0000,$7F81,$FEFC,$04C7
  620.  DC.W $F980,$FFE1,$FF80,$0000,$53FF,$03FF,$905F,$FDF7
  621.  DC.W $F801,$FF20,$3FF8,$1400,$0000,$0000,$0000,$0000
  622.  DC.W $0061,$FF80,$7AD0,$050A,$7801,$7FE1,$FF90,$0000
  623.  DC.W $0FFF,$07FF,$88FF,$FD27,$F003,$FF20,$39D8,$0800
  624.  DC.W $0000,$0000,$0000,$0000,$0029,$FF80,$7FC8,$0001
  625.  DC.W $F802,$7FE1,$FE80,$0000,$2DFF,$27FF,$805F,$F80F
  626.  DC.W $F803,$FFB0,$3FD2,$81FF,$8000,$0000,$0000,$0000
  627.  DC.W $0007,$FF82,$7AD8,$0001,$F800,$FFE1,$FED0,$0000
  628.  DC.W $0FFF,$47FF,$800F,$FC07,$FC07,$FF90,$3FA6,$0FFF
  629.  DC.W $F800,$0000,$0000,$0000,$0317,$FF83,$FBD8,$000E
  630.  DC.W $7900,$7FE1,$FEC0,$0200,$27FF,$0FFF,$000F,$FE0F
  631.  DC.W $FC0F,$FF90,$3F3D,$1FFF,$FE00,$0000,$0000,$0000
  632.  DC.W $0387,$FF8E,$EF00,$2003,$1000,$7FF1,$FFC0,$0400
  633.  DC.W $0FFF,$0FFF,$000F,$FE07,$FE3F,$FFD0,$3F68,$7FFF
  634.  DC.W $FF00,$0000,$0000,$0000,$004F,$FF8F,$6F80,$000E
  635.  DC.W $4000,$7FF1,$FFE0,$0000,$0FFF,$0FFF,$000F,$FE07
  636.  DC.W $FFFF,$FFE0,$1E99,$FFFF,$FF00,$0000,$0000,$0000
  637.  DC.W $0007,$FF9F,$DF00,$000E,$4800,$7FF1,$FFE0,$0000
  638.  DC.W $0FFF,$0FFF,$000F,$FC83,$7FFF,$FFC4,$1D92,$FFFF
  639.  DC.W $FF00,$0000,$0000,$0000,$000D,$7FFF,$5F00,$000F
  640.  DC.W $C000,$7FF1,$FF80,$0000,$9FFF,$0FFF,$8006,$FE00
  641.  DC.W $3FFF,$FF86,$0209,$FFFF,$FE00,$0000,$0000,$0000
  642.  DC.W $0007,$FFFF,$7600,$000F,$C008,$3FF1,$FFA0,$0000
  643.  DC.W $1FFF,$0FFE,$0007,$FC01,$3FFF,$FF20,$0503,$7BFF
  644.  DC.W $FC00,$0000,$0000,$0000,$0007,$FFFF,$6CA0,$000B
  645.  DC.W $EE00,$3FF9,$FF90,$0000,$0FFF,$1FFE,$0007,$FE81
  646.  DC.W $4FFF,$FE30,$0491,$FFFF,$B000,$0000,$0000,$0000
  647.  DC.W $0007,$FFFF,$B000,$001F,$F340,$3FF9,$FFC0,$0000
  648.  DC.W $0FFF,$9FFE,$0087,$FF80,$5FFF,$7800,$05E3,$FFFF
  649.  DC.W $0000,$0000,$0000,$0000,$0007,$FFFF,$8000,$001F
  650.  DC.W $C040,$3FF8,$FFC0,$0000,$0FF9,$9FFC,$0005,$FF00
  651.  DC.W $A0FF,$1000,$020F,$FFF8,$0000,$0000,$0000,$0000
  652.  DC.W $0207,$FFFF,$8000,$001F,$C8A0,$3FF8,$0F80,$0000
  653.  DC.W $0FFE,$9FFE,$0001,$FE01,$4000,$4000,$03DF,$C400
  654.  DC.W $0000,$0000,$0000,$0000,$0707,$FFFF,$C000,$001F
  655.  DC.W $D800,$1FF0,$0000,$0000,$0FFE,$3FFF,$0000,$0000
  656.  DC.W $0001,$5000,$03A6,$0000,$0000,$0000,$0000,$0000
  657.  DC.W $0007,$FFFF,$E080,$003F,$9408,$0000,$0000,$0000
  658.  DC.W $0FFC,$3FF6,$0000,$0000,$0000,$1800,$0090,$0000
  659.  DC.W $0000,$0000,$0000,$0000,$0007,$FFFF,$C010,$003F
  660.  DC.W $C000,$0000,$0000,$0000,$07FF,$3FF2,$0000,$0000
  661.  DC.W $0400,$1020,$0180,$0000,$0000,$0000,$0000,$0000
  662.  DC.W $0007,$FFFF,$0020,$003F,$FD00,$0000,$0000,$0000
  663.  DC.W $003E,$1FF4,$0000,$0000,$0000,$0070,$0000,$0000
  664.  DC.W $0000,$0000,$0000,$0000,$0007,$FFFC,$0000,$001F
  665.  DC.W $F200,$0000,$0000,$0000,$0000,$0FF8,$0000,$0000
  666.  DC.W $0000,$0020,$2000,$0000,$0000,$0000,$0000,$0000
  667.  DC.W $0003,$FF80,$0200,$000F,$F000,$0000,$0000,$0000
  668.  DC.W $0000,$03F0,$0000,$0000,$0000,$0000,$0080,$0000
  669.  DC.W $0000,$0000,$0000,$0000,$0400,$FFD0,$0000,$0003
  670.  DC.W $F000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  671.  DC.W $0000,$0000,$0800,$0010,$8000,$0000,$0000,$0000
  672.  DC.W $0000,$0020,$0000,$0000,$3008,$0000,$0000,$0000
  673.  DC.W $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0024
  674.  DC.W $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  675.  DC.W $0004,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  676.  DC.W $0000,$0000,$0000,$0010,$0000,$0000,$0000,$0000
  677.  DC.W $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  678.  DC.W $0800,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  679.  DC.W $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0020
  680.  DC.W $0000,$0000,$0000,$0000,$1400,$0000,$0000,$0002
  681.  DC.W $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  682.  DC.W $0000,$0000,$0000,$0000,$0000,$0000,$0060,$0000
  683.  DC.W $0000,$0000,$0000,$0004,$0000,$0000,$0000,$0000
  684.  DC.W $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0040
  685.  DC.W $0008,$0000,$0000,$0000,$0400,$0000,$0000,$0002
  686.  DC.W $0000,$0000,$0000,$0000,$0100,$0000,$0000,$0000
  687.  DC.W $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  688.  DC.W $0000,$0020,$0000,$0000,$0000,$0000,$0000,$0000
  689.  DC.W $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  690.  DC.W $0000,$0000,$0000,$0000,$0000,$0058,$0000,$8000
  691.  DC.W $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  692.  DC.W $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  693.  DC.W $0000,$0000,$0000,$6000,$0000,$0000,$0000,$0000
  694.  DC.W $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  695.  DC.W $0000,$0000,$0000,$0000,$0000,$0000,$0000,$2000
  696.  DC.W $0000,$0000,$6000,$0000,$0000,$0000,$0000,$0000
  697.  
  698. ;----------)) Blitter Object Definition Area ((----------------------------
  699.  
  700.         rsreset
  701. Obj_xpos    rs.w    1    ; Possition it is in now. 
  702. Obj_ypos    rs.w    1    ; Calculated with ....
  703. Obj_dx        rs.w    1    ;  x = x + dx
  704. Obj_dy        rs.w    1    ;  y = y + dy 
  705.  
  706.         end
  707.